With the emergence of Internet, end-users have been provided with the possibility to get information and performing different services by applying computers connected to the Internet. Today there are a wide range of services available and the number of services increases constantly. End-users can for instance read news, take part in specific communities, search information, do banking business, play games, order articles or services from Internet shops, borrow e-books from libraries, etc. The end-users apply different clients to access the Internet, such as e.g. computers being connected via fixed or wireless connections.
When applying wireless clients, such as e.g. mobile phones, or handheld computers, they usually connect to the Internet by cellular communication networks based on technologies, such as e.g. HSPA (High Speed Packet Access), or LTE, (Long Term Evolution), WiMax, or Wi-Fi.
TCP (Transmission Control Protocol) is a connection oriented protocol for data communication which is mainly applied for data communication over the Internet. In TCP, the information is divided into IP packets, which are communicated between communicating parties. When a packet, which was sent from a sending party, is successfully received by a receiving party, the receiving party responds by confirming the successful reception by sending an ACK-command to the sending party. Therefore, the communicating parties will be aware of the result of the transmission and could test to increase the bit-rate for the initiated transmission, e.g. by sending two packets instead of one, i.e. twice the original bit-tare. If the sending party does not receive an ACK, the corresponding packet is considered lost and the sending party will therefore retransmit it. TCP provides a reliable connection between communicating parties and is typically applied for protocols such as e.g. HTTP (HyperText Transmission Protocol) or FTP (File Transfer Protocol).
When applying TCP, the transmission will try to apply the full available bit-rate, but starts with an initial bit-rate and increases the bit-rate depending on the received ACK:s, as described above.
Various types of data which is stored at different servers could be downloaded to end-users's clients in accordance with HTTP. Such data could be e.g. webpages, music, video, images. HTTP is a protocol in the application layer of the TCP/IP model (Transmission Control Protocol/Internet Protocol).
Webpages are stored at web servers in parts, typically referred to as frames. When a webpage is requested by a requesting party, the web server storing the webpage will prepare the requested webpage by arranging the frames accordingly, i.e. by building the webpage, before starting to send it to the requesting party. For other types of HTTP transferred data, the servers will prepare the data to be transferred before sending it. For instance, a stored image will be formatted according to HTTP.
With reference to FIG. 1, which is an environmental illustration of a communication arrangement, a scenario where a client 100 downloads a webpage from a web server 104 will now be described, according to the prior art.
An end-user applies a client 100 for downloading the webpage from the web server 104. The client 100 is here illustrated as forming part of a mobile phone, but could instead be implemented in any other communication terminal which is capable of downloading webpages from the web server 104. In a typical scenario, the client 100 could e.g. be implemented as a computer connected to the Internet. In general, clients 100 are not connected directly to web servers, but are typically connected via intermediate communication nodes, e.g. proxy servers. In this example, a proxy server 102 is arranged between the client 100 and the web server 104, and communicates according to TCP with the client 100 and the web server 104. The proxy server 102 communicates data with the client 100 on a first TCP connection, here referred to as TCP 1, over a radio interface via a radio base station 106. The proxy server 102 also communicates data with the web server 104 on a second TCP, here referred to as connection TCP2.
With reference to FIG. 2, which is a signalling chart, a scenario where a client 200 downloads a webpage from a web server 204 via a proxy server 202 will now be described, according to the prior art.
The proxy server 202 is communicating with the client 200 on a first TCP connection, and communicates with the web server 204 on a second TCP connection. Typically, the communication capacity of the first TCP connection is lower that the communication capacity of the second TCP connection, and, as a consequence, the bit-rate for communication of data is lower on the first TCP connection.
When the client 200 wants to download a webpage from the web server 204, the client sends 2:1 a request for the webpage to the proxy server 202, where the request is typically realised as “http 1.1 get”. Then the proxy server 202 requests 2:2 the webpage from the web server 204, by sending a request, typically realised as “http 1.1 get”. When the web server 204 receives the request, the web server starts to prepare or build 2:3 the webpage to be sent to the client 200. When the webpage has been prepared, the web server 204 informs the proxy server 202 that the webpage will start to be downloaded by sending a response, here implemented as “http/1.0 200 OK”, which response is then forwarded 2:5 by the proxy server 202 to the client 200.
The prepared webpage is downloaded 2:6 to the proxy server 202, which will then download 2:7a, 2:7b the webpage to the client 200. When communicating according to TCP, the webpage is divided into IP packets which are sent to the client 200. The proxy server 202 is initially not aware of the communication capacity of the first TCP connection and in order to evaluate the current communication condition and reliably transfer all the packets of the webpage without packet losses, the proxy server 202 therefore starts the downloading of the webpage by sending 2:7a a first part of the webpage at a first bit-rate, and waits for the first part to be acknowledged by the client 200, which, upon a successful receipt, sends 2:8a an ACK in response to the first part. When the proxy server 202 receives the ACK, it will increase 2:9 the bit-rate and send 2:7b a further part of the webpage at a second, higher bit-rate. As long as the proxy server 202 receives 2:8a, 2:8b ACK:s in response to a sent 2:7a, 2:7b part of the webpage, the proxy continues to increase 2:9 the bit-rate when sending 2:7a, 2:7b a further part of the webpage. When the proxy server 202 does not receive a specific ACK, it will instead resend the packet which corresponds to the missing ACK and proceed sending remaining parts of the webpage, applying the so far highest bit-rate which has been acknowledged.
The applied bit-rate is related to how many packets the proxy server 202 sends at a time. Initially, it sends one packet and when receiving an ACK, the proxy server 202 typically sends two packets next time, followed by four packets, etc.
With the described process, the resulting time for finding the available bit-rate could be significant, when evaluating the communication conditions. Especially for small amounts of data to be downloaded, where the amounts of communicated packets are limited, the resulting time of evaluation roundtrips could be close to or above the time of the download itself. For instance, the highest available bit-rate may not even be applied during the download. There is therefore in many situations a problem to effectively effectuate data communication on TCP communication links.